home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’97 / Animated Icons / Source / LogInterface.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-02  |  4.2 KB  |  197 lines  |  [TEXT/MPS ]

  1. #include <Gestalt.h>
  2. // #include "GestaltValue.h"
  3. #include "LogInterface.h"
  4. #include <Memory.h>
  5. #include <string.h>
  6. #include <TextUtils.h>
  7. #include <Types.h>
  8.  
  9. void InsertIntoRing ( LogInterfacePtr logP, const void* data, unsigned long size )
  10. {
  11.     if ( logP && logP->callbackUPP )
  12.         CallLoggerCallbackProc ( logP->callbackUPP, logP,  insertMsg, (long) data, (long) size, (long) 0 );    
  13. }
  14.  
  15. void InsertHexDumpIntoRing ( LogInterfacePtr logP, const void* data, unsigned long size )
  16. {
  17.     if ( logP && logP->callbackUPP )
  18.         CallLoggerCallbackProc ( logP->callbackUPP, logP,  insertHexDumpMsg, (long) data, (long) size, (long) 0 );    
  19. }
  20.  
  21. void PrintfRing ( LogInterfacePtr logP, const char* format, ... )
  22. {
  23.     if ( logP && logP->callbackUPP )
  24.     {    va_list args;
  25.         va_start ( args, format);
  26.         CallLoggerCallbackProc ( logP->callbackUPP, logP,  printfRingMsg, (long) format, (long) &args, (long) 0 );
  27.         va_end ( args );
  28.     }
  29. }
  30.  
  31. void vPrintfRing ( LogInterfacePtr logP, const char* formatStr, va_list* args )
  32. {
  33.     if ( logP && logP->callbackUPP )
  34.         CallLoggerCallbackProc ( logP->callbackUPP, logP, printfRingMsg, (long) formatStr, (long) args, (long) 0 );
  35. }
  36.  
  37. unsigned long RemoveFromRing ( LogInterfacePtr logP, void* data, unsigned long dataSize )
  38. {    unsigned long result = 0;
  39.  
  40.     if ( logP && logP->callbackUPP )
  41.         result = CallLoggerCallbackProc ( logP->callbackUPP, logP, removeMsg, (long) data, (long) dataSize, (long) 0 );    
  42.     
  43.     return result;
  44. }
  45.  
  46. unsigned long GetDataInRingSize ( LogInterfacePtr logP )
  47. {    unsigned long result = 0;
  48.  
  49.     if ( logP && logP->callbackUPP )
  50.         result = CallLoggerCallbackProc ( logP->callbackUPP, logP, getDataInRingSizeMsg, 0, 0, 0 );    
  51.  
  52.     return result;
  53. }
  54.  
  55. Boolean GetRingDataLost ( LogInterfacePtr logP )
  56. {    Boolean result = false;
  57.  
  58.     if ( logP && logP->callbackUPP )
  59.         result = CallLoggerCallbackProc ( logP->callbackUPP, logP, getRingDataLostMsg, 0, 0, 0 );    
  60.  
  61.     return result;
  62. }
  63.  
  64. unsigned long GetRingChangedCount ( LogInterfacePtr logP )
  65. {
  66.     if ( logP )
  67.         return 0;
  68.     else
  69.         return 0;
  70. }
  71.  
  72. LogInterfacePtr GetLogInterfacePtr ( )
  73. {    LogInterfacePtr result;
  74.  
  75.     if ( Gestalt ( kLogInterfaceSignature, (long*) & result ) != noErr )
  76.         result = nil;
  77.     
  78.     return result;
  79. }
  80.  
  81. void ClearText ( LogInterfacePtr logP )
  82. {    
  83.     if ( logP && logP->callbackUPP )
  84.         CallLoggerCallbackProc ( logP->callbackUPP, logP, clearMsg, 0, 0, 0 );    
  85. }
  86.  
  87. Boolean GetFlagValue ( LogInterfacePtr logP, unsigned long whichFlag )
  88. {    Boolean result = false;
  89.  
  90.     if ( logP && logP->callbackUPP )
  91.         result = CallLoggerCallbackProc ( logP->callbackUPP, logP, getFlagMsg, whichFlag, 0, 0 );
  92.  
  93.     return result;
  94. }
  95.  
  96. void SetFlagValue ( LogInterfacePtr logP, unsigned long whichFlag, Boolean value )
  97. {
  98.     if ( logP && logP->callbackUPP )
  99.         CallLoggerCallbackProc ( logP->callbackUPP, logP, setFlagMsg, whichFlag, value, 0 );
  100. }
  101.  
  102. void Debug ( char *format, ... )
  103. {    LogInterfacePtr logP = GetLogInterfacePtr();
  104.     va_list        argptr;
  105.  
  106.     if ( logP )
  107.     {
  108.         va_start ( argptr, format );
  109.         
  110.         vPrintfRing ( logP, format, & argptr );
  111.         
  112.         va_end ( argptr );
  113.     }
  114. }
  115.  
  116. void DebugF ( unsigned short whichFlag, char *format, ... )
  117. {    LogInterfacePtr logP = GetLogInterfacePtr();
  118.     va_list        argptr;
  119.  
  120.     if ( logP && GetFlagValue ( logP, whichFlag ) )
  121.     {
  122.         va_start ( argptr, format );
  123.         
  124.         vPrintfRing ( logP, format, & argptr );
  125.         
  126.         va_end ( argptr );
  127.     }
  128. }
  129.  
  130.  
  131.  
  132. #ifndef DONT_DEFINE_CONSOLE_FUNCTIONS
  133. #ifdef __MWERKS__
  134.  
  135. #ifdef __cplusplus
  136. extern "C" {
  137. #endif
  138.  
  139. #include "LogInterface.h"
  140.  
  141. #include <SIOUX.h>
  142.  
  143. long ReadCharsFromConsole ( char* data, long size );
  144. short SIOUXHandleOneEvent ( struct EventRecord* event );
  145. long WriteCharsToConsole ( char* data, long size );
  146. void RemoveConsole ( );
  147. short InstallConsole ( short fd );
  148. char *__ttyname(long fildes);
  149.  
  150. long ReadCharsFromConsole ( char* data, long size )
  151. {
  152.     return -1;
  153. }
  154.  
  155. short SIOUXHandleOneEvent ( struct EventRecord* event )
  156. {
  157.     return false;
  158. }
  159.  
  160. tSIOUXSettings SIOUXSettings;
  161.  
  162. long WriteCharsToConsole ( char* data, long size )
  163. {
  164.     if ( GetLogInterfacePtr() )
  165.         InsertIntoRing ( GetLogInterfacePtr(), data, size );
  166.     return size;
  167. }
  168.  
  169. void RemoveConsole ( )
  170. {
  171. }
  172.  
  173. short InstallConsole ( short fd )
  174. {
  175.     return 0;
  176. }
  177.  
  178. char *__ttyname(long fildes)
  179. {
  180. #pragma unused (fildes)
  181.     /* all streams have the same name */
  182.     static char *__devicename = "null device";
  183.  
  184.     if (fildes >= 0 && fildes <= 2)
  185.         return (__devicename);
  186.  
  187.     return (0L);
  188. }
  189.  
  190.  
  191. #ifdef __cplusplus
  192. };
  193. #endif
  194.  
  195. #endif
  196.  
  197. #endif